
package com.sms.cust;

import java.util.ArrayList;
import java.util.List;

import javax.activation.DataHandler;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlMimeType;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for callrequest complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="callrequest">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="SIID" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Authenticator" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="TimeStamp" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="TransactionID" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="StreamingNo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="ChargePartyType" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="BizID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="CustID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="UserID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="ProductID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="CapacityID" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="SessionToken" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="ParamItem" type="{http://www.bnet.cn/v3.0/}ParamItem" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "callrequest", propOrder = {
    "siid",
    "authenticator",
    "timeStamp",
    "transactionID",
    "streamingNo",
    "chargePartyType",
    "bizID",
    "custID",
    "userID",
    "productID",
    "capacityID",
    "sessionToken",
    "paramItem",
    "content"
})
public class Callrequest {

    @XmlElement(name = "SIID", required = true)
    protected String siid;
    @XmlElement(name = "Authenticator", required = true)
    protected String authenticator;
    @XmlElement(name = "TimeStamp", required = true)
    protected String timeStamp;
    @XmlElement(name = "TransactionID", required = true)
    protected String transactionID;
    @XmlElement(name = "StreamingNo")
    protected String streamingNo;
    @XmlElement(name = "ChargePartyType")
    protected int chargePartyType;
    @XmlElement(name = "BizID")
    protected String bizID;
    @XmlElement(name = "CustID")
    protected String custID;
    @XmlElement(name = "UserID")
    protected String userID;
    @XmlElement(name = "ProductID")
    protected String productID;
    @XmlElement(name = "CapacityID", required = true)
    protected String capacityID;
    @XmlElement(name = "SessionToken")
    protected String sessionToken;
    @XmlElement(name = "ParamItem")
    protected List<ParamItem> paramItem;
    
    @XmlElement(name = "Content")
    @XmlMimeType("*/*")
    protected List<DataHandler> content;
//    @XmlMimeType("*/*")
//    protected List<byte[]> content;


    /**
     * Gets the value of the siid property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSIID() {
        return siid;
    }

    /**
     * Sets the value of the siid property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSIID(String value) {
        this.siid = value;
    }

    /**
     * Gets the value of the authenticator property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAuthenticator() {
        return authenticator;
    }

    /**
     * Sets the value of the authenticator property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAuthenticator(String value) {
        this.authenticator = value;
    }

    /**
     * Gets the value of the timeStamp property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTimeStamp() {
        return timeStamp;
    }

    /**
     * Sets the value of the timeStamp property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTimeStamp(String value) {
        this.timeStamp = value;
    }

    /**
     * Gets the value of the transactionID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTransactionID() {
        return transactionID;
    }

    /**
     * Sets the value of the transactionID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTransactionID(String value) {
        this.transactionID = value;
    }

    /**
     * Gets the value of the streamingNo property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStreamingNo() {
        return streamingNo;
    }

    /**
     * Sets the value of the streamingNo property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStreamingNo(String value) {
        this.streamingNo = value;
    }

    /**
     * Gets the value of the chargePartyType property.
     * 
     */
    public int getChargePartyType() {
        return chargePartyType;
    }

    /**
     * Sets the value of the chargePartyType property.
     * 
     */
    public void setChargePartyType(int value) {
        this.chargePartyType = value;
    }

    /**
     * Gets the value of the bizID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getBizID() {
        return bizID;
    }

    /**
     * Sets the value of the bizID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBizID(String value) {
        this.bizID = value;
    }

    /**
     * Gets the value of the custID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCustID() {
        return custID;
    }

    /**
     * Sets the value of the custID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCustID(String value) {
        this.custID = value;
    }

    /**
     * Gets the value of the userID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getUserID() {
        return userID;
    }

    /**
     * Sets the value of the userID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setUserID(String value) {
        this.userID = value;
    }

    /**
     * Gets the value of the productID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProductID() {
        return productID;
    }

    /**
     * Sets the value of the productID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProductID(String value) {
        this.productID = value;
    }

    /**
     * Gets the value of the capacityID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCapacityID() {
        return capacityID;
    }

    /**
     * Sets the value of the capacityID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCapacityID(String value) {
        this.capacityID = value;
    }

    /**
     * Gets the value of the sessionToken property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSessionToken() {
        return sessionToken;
    }

    /**
     * Sets the value of the sessionToken property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSessionToken(String value) {
        this.sessionToken = value;
    }

    /**
     * Gets the value of the paramItem property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the paramItem property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getParamItem().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ParamItem }
     * 
     * 
     */
    public List<ParamItem> getParamItem() {
        if (paramItem == null) {
            paramItem = new ArrayList<ParamItem>();
        }
        return this.paramItem;
    }

//    public List<byte[]> getContent() {
//    	if(content ==null){
//    		content = new ArrayList<byte[]>();
//    	}
//		return content;
//	}
    public List<DataHandler> getContent() {
    	if(content ==null){
    		content = new ArrayList<DataHandler>();
    	}
    	return content;
    }


}
